package vista;

import java.awt.Component;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

import modelo.funciones.Funcion;

public abstract class PanelObservador extends JPanel implements ActionListener{
	
	private double vector[];
	private Funcion f;
	
	public PanelObservador(Funcion f){
		super();
		this.vector=new double[2];
		this.f=f;
		JLabel label=new JLabel("Ingrese el comienzo del intervalo donde desea calcular ");
		JLabel label2=new JLabel("Ingrese el final del intervalo donde desea calcular ");
		JTextField texto=new JTextField(10);
		JTextField texto2=new JTextField(10);
		JButton boton=new JButton("ingresar");
		boton.addActionListener(this);
		this.setLayout(new GridLayout(5,0));
		this.add(label);
		this.add(texto);
		this.add(label2);
		this.add(texto2);
		this.add("South",boton);
	}
	
	protected double[] getVector(){
		return this.vector;
	}
	
	protected Funcion getFuncion(){
		return this.f;
	}
	
	public abstract void mostrarResultado();

	public void actionPerformed(ActionEvent arg0) {
		Component componentes[]=this.getComponents();
		try {
			int j=0;
			for (int i=0;i<componentes.length;i++){
			if (componentes[i] instanceof JTextField){
				this.getVector()[j]=Double.parseDouble(((JTextField)componentes[i]).getText());
				j++;
				}
			}
			this.mostrarResultado();
			} catch (NumberFormatException e){
				Mensaje mensaje=new Mensaje("El numero ingresado no es valido");
			}
		}
}